package com.eastfair.imaster.dto;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;

import static com.baomidou.mybatisplus.annotation.SqlCondition.LIKE;

/**
 * <p>
 * 实体类
 * 公司员工表
 * </p>
 *
 * @author ligang
 * @since 2021-08-31
 */
@Data
public class EmployeeDTO implements Serializable {
    public interface addUserIdOfCompany {}
    public interface breaklUserIdOfCompany {}

    private static final long serialVersionUID = 1L;
    /**
     * 主键ID
     */
    @ApiModelProperty(value = "主键ID")
    @NotNull(groups = {breaklUserIdOfCompany.class})
    private Long id;
    /**
     * 公司ID
     */
    @ApiModelProperty(value = "公司ID")
    @NotNull(groups = {addUserIdOfCompany.class,breaklUserIdOfCompany.class})
    private Long companyId;
    /**
     * 用户ID
     */
    @ApiModelProperty(value = "用户ID")
    @NotNull(groups = {addUserIdOfCompany.class})
    private Long userAccountId;
    /**
     * 是否为管理员 1是 0否
     */
    @ApiModelProperty(value = "是否为管理员 1是 0否")
    @NotNull(groups = {addUserIdOfCompany.class})
    private Integer isAdmin;


    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名")
    private String nickName;
    /**
     * 英文姓名
     */
    @ApiModelProperty(value = "英文姓名")
    private String enNickName;
    /**
     * 是否是参展员工
     */
    @ApiModelProperty(value = "是否参展")
    private Integer isExhibitor;


    //用户Vo
    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名")
    @Size(max = 64, message = "姓名长度不能超过64")
    @TableField(value = "name", condition = LIKE)
    @Excel(name = "姓名")
    private String name;

    /**
     * 手机区号
     */
    @ApiModelProperty(value = "手机区号")
    @Size(max = 64, message = "手机区号长度不能超过64")
    @TableField(value = "mobile_country_code", condition = LIKE)
    @Excel(name = "手机区号")
    private String mobileCountryCode;

    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号")
    @Size(max = 16, message = "手机号长度不能超过16")
    @TableField(value = "mobile", condition = LIKE)
    @Excel(name = "手机号")
    private String mobile;

    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱")
    @Size(max = 64, message = "邮箱长度不能超过64")
    @TableField(value = "email", condition = LIKE)
    @Excel(name = "邮箱")
    private String email;


    /**
     * 头像
     */
    @ApiModelProperty(value = "头像")
    @Size(max = 255, message = "头像长度不能超过255")
    @TableField(value = "head_img", condition = LIKE)
    @Excel(name = "头像")
    private String headImg;
}
